﻿using System.Text.RegularExpressions;

namespace curbside.IBatis
{
    internal class ParameterValidate
    {
        private ParameterValidate() { }
        private const string defaultEscapeString = "/";

        public static string ValidateExpression(string para)
        {
            return ValidateExpression(para, defaultEscapeString);
        }

        public static string ValidateExpression(string para, string escapeString)
        {
            if (para == null)return null;
            if (escapeString == null) escapeString = defaultEscapeString;

            para = Regex.Replace(para, escapeString, escapeString + escapeString);
            para = Regex.Replace(para, "'", "''");
            para = Regex.Replace(para, "%", escapeString + "%");
            para = Regex.Replace(para, "_", escapeString + "_");
            para = Regex.Replace(para, @"\[", escapeString + "[");
            para = Regex.Replace(para, @"\^", escapeString + "^");
            para = Regex.Replace(para, @"\]", escapeString + "]");

            return para;
        }
    }
}
